Opis |
---|
Znajduje polilinie graniczne w wybranych obiektach siatki. Polilinie graniczne są tworzone ze wszystkich krawędzi znalezionych w siatce, które są współdzielone tylko przez jedną ścianę, czyli są to krawędzie "brzegowe". Znalezione polilinie są dodawane do dokumentu (jeden związek na obiekt siatki), podczas gdy sama siatka jest ukrywana. Macro version: 1 Last modified: 2016-12-17 FreeCAD version: wszystkie Download: Ikonka paska narzędzi Autor: Yorik |
Autor |
Yorik |
Do pobrania |
Ikonka paska narzędzi |
Odnosniki |
Przepisy na makropolecenia Jak zainstalować makrodefinicje Dostosowanie pasków narzędzi |
Wersja Makrodefinicji |
1 |
Data zmian |
2016-12-17 |
Wersja FreeCAD |
wszystkie |
Domyślny skrót |
Brak |
Zobacz również |
- |
Znajduje polilinie graniczne w wybranych obiektach siatki. Polilinie graniczne są tworzone ze wszystkich krawędzi znalezionych w siatce, które są współdzielone tylko przez jedną ścianę, czyli są to krawędzie "brzegowe". Znalezione polilinie są dodawane do dokumentu (jeden związek na obiekt siatki), podczas gdy sama siatka jest ukrywana.
Macro_Extract_Wires_from_Mesh.FCMacro
#!/usr/bin/python # This macro will extract wires from selected meshes # The result is a new Part Compound containing wires, one per original mesh object # The selected meshes will be hidden but still selected after the operation. # Warning, it takes a bit of time... import FreeCAD,FreeCADGui,Part,Draft,DraftGeomUtils,Mesh for obj in FreeCADGui.Selection.getSelection(): if obj.isDerivedFrom("Mesh::Feature"): shape = Part.Shape() shape.makeShapeFromMesh(obj.Mesh.Topology,0.1) edges = [] lut = {} for f in shape.Faces: for e in f.Edges: lut.setdefault(e.hashCode(),[]).append(e) for k,v in lut.items(): if len(v) == 1: edges.extend(v) if edges: wires = DraftGeomUtils.findWires(edges) if wires: Part.show(Part.makeCompound(wires)) obj.ViewObject.hide()